package com.motong.gongdan.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.motong.gongdan.entity.BomInfo;
import com.motong.gongdan.entity.Product;
import com.motong.gongdan.vo.system.AssemblyWorkOrder.vo.AssemblyDetailProductVo;
import com.motong.gongdan.vo.system.BOM.query.BOMListQuery;
import com.motong.gongdan.vo.system.BOM.query.ListGroupByProductQuery;
import com.motong.gongdan.vo.system.BOM.vo.BOMListVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface BomInfoMapper extends BaseMapper<BomInfo> {

    /**
     * @param page  分页条件
     * @param query 查询条件
     * @return 物料清单相关数据
     */
    Page<BOMListVo> getList(Page<BomInfo> page, @Param("query") BOMListQuery query);

    /**
     * @param productIds 产品id集合
     * @return 物料清单产品详细数据
     */
    List<AssemblyDetailProductVo> getListByProductId(@Param("productIds") List<Integer> productIds);

    /**
     * 获取物料清单列表(按产品分组)
     */
    Page<Product> getListGroupByProduct(Page<Product> page, @Param("query") ListGroupByProductQuery query);

    /**
     * 获取产品信息
     */
    List<AssemblyDetailProductVo> getProductListByProductId(@Param("productIds") List<Integer> productIds);
}